package com.qianxin.ids.idam.am.authn.factors.cass.upsso.api;

import com.alibaba.fastjson.JSONObject;
import com.qianxin.ids.idam.am.authn.api.factors.AuthnFactorInstance;
import lombok.Data;

import java.io.Serializable;

/**
 * @author xiongjianlin
 */
@Data
public class CassUpSsoProperties implements Serializable {

    /**
     * 社科门户地址
     */
    public String skUrl;

    public String ssoUrl;
    public String authnUrl;
    public String aesKey;
    /**
     * 获取岗位地址
     */
    public String forCharacterUrl;
    /**
     * 获取userToken地址
     */
    public String forUserTokenUrl;

    /**
     *  刷新token地址
     */
    public String refreshTokenUrl;
    /**
     * token过期时间分钟。  最小不能低于窗口时间。
     */
    public Integer tokenExpireTime = 30;



//    /**
//     * 门户的appId
//     */
//    public String appId;
//    /**
//     * 通过token换取code地址
//     */
//    public String forCodeUrl;
//    /**
//     * 换取code时，需要填写的tac注册到IAM平台的系统id
//     */
//    public String clientId;
//    /**
//     *  iam平台回调地址， 返回code到此地址
//     */
//    public String redirectUrl;

    public static CassUpSsoProperties parse(AuthnFactorInstance authnFactorInstance){
        JSONObject properties = new JSONObject(authnFactorInstance.getProperties());
        return JSONObject.toJavaObject(properties, CassUpSsoProperties.class);
    }
}
